The technology described herein relates to a method of and an apparatus for providing an output surface (such as a window to be displayed) that is composited (generated) from one or more input surfaces (such as input windows) in data processing systems.
Many known electronic devices and systems use windows for displaying information, such as a graphical user interface, game, demo, etc., to a user on a display screen (and for allowing a user to interact with an application or applications being executed).
A common way of providing such windows is to use a compositing window system, in which individual input windows are combined appropriately (i.e. composited) and the result is written out to a frame buffer, which is then read by a display controller for the display in question in order to display the windows to the user. Since such systems write out to a frame buffer and this buffer is then read for display, they are often referred to as frame buffer composition systems.
An example of this frame buffer composition process is shown in FIG. 1. In this process, input surfaces 1a, 1b, 1c are read and passed to a composition engine 3 which combines the input surfaces 1a-c to generate a composited output frame. At step 5 the composited output frame is written to a buffer and then at step 7 the composited output frame is read from the buffer by a display controller 9, which then sends the composited output frame to a display for display.
A frame buffer composition system is shown in FIG. 2. This comprises a central processing unit (CPU) 10, a graphics processing unit (GPU 11), a composition engine 12, a display controller 9 and a memory controller 14. As shown in FIG. 2, these communicate via an interconnect 13. The memory controller also has access to an off-chip memory 15 for storing the composited frame buffer. The composition engine 12 generates the composited output frame from one or more input surfaces (e.g. generated by the GPU 11) and the composited output frame is then stored, via the memory controller 14, in a frame buffer in the off-chip memory 15. The display controller 9 then reads the composited output frame from the frame buffer in the off-chip memory 15 via the memory controller 14 and sends it to a display for display.
As well as such frame buffer composition systems, there also exist direct composition systems, in which a composited frame is generated from input surfaces (windows) and then output to a display directly (i.e. not via intermediate storage in a frame buffer).
An example of a direct composition process is shown in FIG. 3. Compared with the frame buffer composition process shown in FIG. 1, in this direct composition process, the composited frame is not written to a buffer or read therefrom. Rather, a compositing display controller 8 generates the composite frame from the input surfaces 1a-c and then sends the composited frame on for display, without storing it in a buffer first.
A direct composition system is shown in FIG. 4. Compared with the frame buffer system shown in FIG. 2, in the direct composition system the composition engine 12 and display controller 9 are replaced with a single compositing display controller 8 which generates the composited frame from the input surfaces and then sends the composited frame straight on for display, without storing it in a buffer first.
The Applicant believes that there remains scope for improvements to compositing window systems.
Like reference numerals are used for like features throughout the drawings, where appropriate.